package com.jeeplus.modules.guide.mapper;

import com.jeeplus.modules.guide.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * ClassName: MobileQueueMapper
 * Function:  排队叫号大厅对接类
 * Date:      2021/6/4 15:55
 *
 * @author azj
 * version    V1.0
 */

@Mapper
@Repository
public interface MobileQueueMapper {

    /**
     * 获取大厅点位集合
     *
     * @return
     */
    List<MobileAreaType> listArea();

    /**
     * 获取南区大厅点位集合
     *
     * @return
     */
    List<MobileAreaType> listNQ();



    /**
     * 获取大厅点位业务集合
     *
     * @return
     */
    List<MobileQueueType> findAreaType(String orgrizeId);

    /**
     * 获取大厅点位预约业务集合
     *
     * @return
     */
    List<MobileQueueType> findAreaTypeYY(String orgrizeId);
    /**
     * 获取排队信息
     *
     * @return
     */
    MobileQueueValue getQueueValue(String number, String orgrizeId,String chars);

    /**
     * 获取排队用户信息
     *
     * @return
     */
    MobileQueueUser findUserByNumber(String number, String orgrizeId);

    /**
     * 获取用户预约业务，生成排队编号
     *
     * @return
     */
    MobileUserYY checkUserYY(String cardid, String orgrizeId);

    /**
     * 更新用户预约状态
     *
     * @returnid
     */
    Integer updateUserYY(String id, String number,String doTime);

    /**
     * 录入用户办理事项
     *
     * @returnid
     */
    int updateUserQueueMatter(String number, String orgrizeId,String matterId,String matterName);

    /**
     * 获取大厅排队记录A版本 税务记录推送至市上
     *
     * @returnid
     */
    List<MobileSWQueue> getSWQueueA(@Param("doTime") String doTime);

    /**
     * 获取大厅排队记录B版本 税务记录推送至市上
     *
     * @returnid
     */
    List<MobileSWQueue> getSWQueueB(@Param("doTime") String doTime);

    /**
     * 获取大厅排队记录C版本 税务记录推送至市上
     *
     * @returnid
     */
    List<MobileSWQueue> getSWQueueC(@Param("doTime") String doTime);

    /**
     * 查询已取号预约记录
     *
     * @returnid
     */
    String findYYValue(String id);

    /**
     * 获取南区大厅等待记录
     *
     * @return
     */
    List<MobileOtherQueue> getMobileOtherQueue();

    /**
     * 获取南区大厅办理记录
     *
     * @return
     */
    List<MobileOtherHQueue> getMobileOtherHQueue();

    int updateOtherHQueue(String id,String timeExpr);

    List<MobileCounter> getMobileCounter();
    List<MobileOrgrizeTree> getMobileOrgrizeTree();
    List<MobileSerial> getMobileSerial();
    List<MobileManager> getMobileManager();
    List<MobilePjProject> getMobilePjProject();
    List<ListArea> getListAreaValue(@Param("listArea") List<String> listArea );
    List<ListArea> getListAreaOffice(String name);
    List<MobileAreaType> listAreaValue();
    List<String> listAreaOffice(String areaId);
    List<HashMap<String,String>> listAreaCount(String areaId);
    MobileAreaType findUserByNumberOther(String orgrizeId);
    List<MobileAreaType> listAreaByWS();
    List<ListArea> getListAreaWS(String areaId,String replaceStr);
    HashMap<String,String> isAreaWS(String areaId);
    Integer findUserQueue(String typeNumber,String areaId,String idcard);
    HashMap<String,String> getBussNumberById(String id);
    String getWinoValue(String areaId,String number);
    void updateTimeIsNull();
    List<MobileQueueList> getQueueList(Map<String,Object> map);
    List<PJQueue> findAllPJ(String areaId,String wino,String pj,String number,String beginWorkTime,String endWorkTime);
    List<MobileQueueList> getQueueListByIdcare(Map<String,Object> map);

    List<Map<String,String>> getCloseValue();

    List<QueueUser> queueUserList();

    MobileOtherHQueue findUserByQueueId(String id);

    List<HashMap<String,Object>> todayManager();

    int findCountCounter(String id);

    List<FCJJDQueueEntity> fcjjdQueueInfo(String startTime,String endTime);

    int intoRCUser(String idcard);

    String findTypeNo(String areaId,String typeNo);


    List<Map<String,Object>> cdszwphgetQuHua();
     List<Map<String,Object>> cdszwphgetOrgrizeTree();
     List<Map<String,String>> cdszwphyw(String itemCode);
    String getOrgrizeId(String itemCode);
    List<Map<String,String>> cdszwphywchildren(String itemCode);

    /*
    获取区划
     */
    List<Map<String,Object>> cdszwphgetSpot();
    /*
    获取业务分类
     */
    List<Map<String,Object>> cdszwphgetClassification(String spotCode);
    /*
    根据业务分类获取业务
     */
    List<Map<String,Object>> cdszwphgetBusinessByDepartmentName(String departmentName);
    /*
    获取业务
     */
    List<Map<String,Object>> cdszwphgetBusiness(String spotCode);

    Map<String,String> cdszwphgetSpotBySpotCode(String spotCode);
    Map<String,String> cdszwphgetClassificationByitemCodeItemCode(String itemCode);

    /*
    获取业务取号时间段
     */
    String findDoTime(String typeId);

    /*
    对业务服务时间做判断
     */
    List<Integer> checkDoTime(String createTime,String endTime);

    Map<String,String> findNumberValue(String area,String number);


}
